/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controllers;

import dao.DaoEscola;
import dao.DaoSerie;
import java.util.ArrayList;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.swing.JOptionPane;
import model.Escola;
import model.Serie;

/**
 *
 * @author ronaldomartins
 */
@ManagedBean
@ViewScoped
public class ControllerTurmas {
    private DaoEscola daoEscola = new DaoEscola();
    DaoSerie daoSerie = new DaoSerie();
    
    private String status = "Novo";
    private String id="";
    private String escola="";
    private String descricao="";
    private String turma="";
    private String tipoensina="";
    private boolean desabilitaBotao = false;    

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    
    
    
    public String getEscola() {
        return escola;
    }

    public void setEscola(String escola) {
        this.escola = escola;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public String getTurma() {
        return turma;
    }

    public void setTurma(String turma) {
        this.turma = turma;
    }

    public String getTipoensina() {
        return tipoensina;
    }

    public void setTipoensina(String tipoensina) {
        this.tipoensina = tipoensina;
    }
    
    public DaoEscola getDaoEscola() {
        return daoEscola;
    }

    public void setDaoEscola(DaoEscola daoEscola) {
        this.daoEscola = daoEscola;
    }
 
    public void gravar(){
        if ((getId().equals(""))){
            Escola escola = (Escola) daoEscola.buscarPorId(Long.parseLong(getEscola()));        

            Serie serie = new Serie();
            serie.setDescricao(Integer.parseInt(getDescricao()));
            serie.setTipoEnsino(getTipoensina());
            serie.setTurma(getTurma());

            escola.getSeries().add(serie);

            daoEscola.atualizar(escola);
            util.UtilWeb.enviarMessagemInfo("msg", "Turma criada com sucesso!");
        }else{
            Serie serie = (Serie) daoSerie.buscarPorId(new Long(getId()));
            serie.setDescricao(Integer.parseInt(getDescricao()));
            serie.setTipoEnsino(getTipoensina());
            serie.setTurma(getTurma());

            daoSerie.atualizar(serie);
            
            util.UtilWeb.enviarMessagemInfo("msg", "Turma alterada com sucesso!");
        }
        
        setDescricao("");
        setId("");
        setStatus("Novo");
        setTipoensina("");
        setTurma("");
        setDesabilitaBotao(false);
        
    }
    
    public void excluir(int idSerie){
        Serie s = (Serie) daoSerie.buscarPorId(new Long(idSerie));
        Escola e = (Escola)daoEscola.buscarPorId(new Long(getEscola()));
        e.getSeries().remove(s);
        daoEscola.atualizar(e);
        util.UtilWeb.enviarMessagemInfo("msg", "Turma excluída com sucesso!");
        
    }
    
    public void atualizar(int id){
        Serie s = (Serie) daoSerie.buscarPorId(new Long(id));
        setStatus("Alterar");
        setId(""+s.getId());
        setDescricao(""+s.getDescricao());
        setTipoensina(s.getTipoEnsino());
        setTurma(s.getTurma());
        
        setDesabilitaBotao(true);
    }
    
    
    /**
     * Creates a new instance of ControllerTurmas
     */
    public ControllerTurmas() {}
    
    public List<Serie> retornaSeries(){
        List<Serie> series = new ArrayList<Serie>();
        if ((getEscola() !=null) && (!getEscola().equals(""))){
            Escola e = (Escola) daoEscola.buscarPorId(new Long(getEscola()));
            series = e.getSeries();
        }
        return series;
    }
    
    public List<Escola> retornaEscolas(){
        return daoEscola.listarTodos();
    }
    
    public String converteTipoEnsino(String tipo){
        if (tipo.equals("ef")) return "Ensino Fundamental";
        else if (tipo.equals("em")) return "Ensino Médio";
        else return "";
    }
    
    public void novo(){
        setId("");
        setDescricao("");
        setTipoensina("");
        setTurma("");
        setStatus("Novo");
        setDesabilitaBotao(false);
    }

    public boolean isDesabilitaBotao() {
        return desabilitaBotao;
    }

    public void setDesabilitaBotao(boolean desabilitaBotao) {
        this.desabilitaBotao = desabilitaBotao;
    }
    
    
     
}

